package com.ruoyi.web.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.web.dto.FileChunkDTO;
import com.ruoyi.web.dto.FileChunkResultDTO;

import java.io.IOException;

/**
 * @Auther: lihongming
 * @Date: 2023-07-27 14:10
 * @Description: com.ruoyi.web.service
 * @Version: 1.0
 */
public interface IUploadService {
    /**
     * 检查文件是否存在，如果存在则跳过该文件的上传，如果不存在，返回需要上传的分片集合
     * @param chunkDTO
     * @return
     */
    FileChunkResultDTO checkChunkExist(FileChunkDTO chunkDTO);


    /**
     * 上传文件分片
     * @param chunkDTO
     */
    void uploadChunk(FileChunkDTO chunkDTO) throws IOException;


    /**
     * 合并文件分片
     * @param identifier
     * @param fileName
     * @param totalChunks
     * @return
     * @throws IOException
     */
    AjaxResult mergeChunk(String identifier, String fileName, Integer totalChunks)throws IOException;

    /**
     * 删除redis key
     * @param identifier
     */
    void delRedisKey(String identifier);
}
